package com.ruoyi.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.system.domain.DesignSchemeImage;

import java.util.List;

/**
 * 设计方案图片表Mapper接口
 */
public interface DesignSchemeImageMapper extends BaseMapper<DesignSchemeImage> {

    /**
     * 根据方案ID查询所有图片
     */
    List<DesignSchemeImage> selectBySchemeId(Long schemeId);

    /**
     * 根据方案ID和空间类型查询图片
     */
    List<DesignSchemeImage> selectBySchemeIdAndSpaceType(Long schemeId, String spaceType);

    /**
     * 检查同一方案同一空间下是否存在相同文件名
     */
    int checkFileNameExists(Long schemeId, String spaceType, String fileName);

    /**
     * 根据业务关联ID查询所有操作日志（不分页）
     *
     * @param schemeIds 业务关联ID（如图纸ID、订单ID）
     * @return 操作日志列表
     */
    default List<DesignSchemeImage> batchSelectBySchemeIds(List<Long> schemeIds) {
        // 利用 MyBatis-Plus 的 QueryWrapper 构建条件
        return selectList(
                new com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<DesignSchemeImage>()
                        .in("scheme_id", schemeIds)
                        .eq("is_deleted", 0)            // 过滤已删除记录
                        .orderByAsc("space_type")    // 按操作时间倒序（最新的在前）
                        .orderByAsc("sort_order")
        );
    }
}
